home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / maxhead2.arc / MAXHEAD2.PAS < prev    next >
Pascal/Delphi Source File  |  1986-08-28  |  6KB  |  211 lines

  1. {$U+}
  2.  
  3. Program MaxHeadroom(Input,Output,Disk);
  4.  
  5. { by Robert Kemmetmueller, but don't tell anyone, I stole the speech routines }
  6. { Version 2- same as version 1 but he says more & there's a translation on the
  7.   bottom of the screen while he talks }
  8.  
  9. {
  10.  This is the Turbo Pascal include-file for the speech driver.  The
  11.  parameter S must be a character string containing valid phoneme codes:
  12.  
  13.    CODE   SOUND  (capitalized in sample word)
  14.    ----   -----
  15.     A     mAke   = m-A-k
  16.     AE    bAt    = b-AE-t
  17.     AH    cAr    = k-AH-r
  18.     AW    dOg    = d-AW-g
  19.     B     Bat    = B-ae-t
  20.     CH    CHeese = CH-ee-z
  21.     D     Dog    = D-aw-g
  22.     EE    bE     = b-EE
  23.     EH    bEt    = b-EH-t
  24.     F     raFt   = r-ae-F-t
  25.     G     Go     = G-oh
  26.     H     Hive   = H-i-v
  27.     I     tIme   = t-I-m
  28.     IH    sIt    = s-IH-t
  29.     J     Jet    = J-eh-t
  30.     K     Kill   = K-ih-l
  31.     L     Love   = L-uh-v
  32.     M     Map    = M-ae-p
  33.     N     Nab    = N-ae-b
  34.     OH    gO     = g-OH
  35.     OO    gOO    = g-OO
  36.     P     Pat    = P-ae-t
  37.     R     Rat    = R-ae-t
  38.     S     Sat    = S-ae-t
  39.     SH    SHe    = SH-ee
  40.     T     Tap    = T-ae-p
  41.     TH    THin   = TH-ih-n
  42.     TZ    THis   = TZ-ih-s
  43.     U     wOrd   = w-U-r-d
  44.     UH    bUt    = b-UH-t
  45.     V     Vat    = V-ae-t
  46.     W     With   = W-ih-th
  47.     WH    WHich  = WH-ih-ch
  48.     Y     Yes    = Y-eh-s
  49.     Z     Zap    = Z-ae-p
  50.     ZH    viSion = v-ih-ZH-eh-n
  51.     -     inter-phoneme separator
  52.    space  inter-word pause
  53. }
  54.  
  55. Type
  56.     SpeechString= String[255];
  57.     Line= Array[1..80] of Integer;
  58.     Screen= Array[1..24] of Line;
  59.     TwoScreens= Array[1..2] of Screen;
  60.     Registers= Record
  61.                    AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Integer;
  62.                    end;
  63.  
  64. Var
  65.     Disk: File of TwoScreens;
  66.     Scrns: TwoScreens;
  67.     Scrn: Screen Absolute $B800:$0000;
  68.     Closed: Screen;
  69.     Regs: Registers;
  70.     I,J,K: Integer;
  71.  
  72. Procedure Say(S: SpeechString);       External 'C:SPEECH.BIN';
  73.  
  74. Procedure Scrn0;
  75.     Begin
  76.         Scrn:=Scrns[1];
  77.         End;
  78.  
  79. Procedure Scrn1;
  80.     Begin
  81.         Scrn:=Scrns[2];
  82.         End;
  83.  
  84. BEGIN
  85.     TextMode(C80); TextColor(7); TextBackground(7); ClrScr;
  86.     TextBackground(0); GotoXY(1,25); Writeln;
  87. { Read in screen data }
  88.     Assign(Disk,'MAXHEAD2.DAT'); Reset(Disk);
  89.     Read(Disk,Scrns); Close(Disk);
  90.     GotoXY(1,25); TextColor(15);
  91. { Draw closed box }
  92.     For I:=0 to 2 do
  93.         For J:=1 to 80 do begin
  94.             Scrn[1+I,J]:=$08DB+$0700*Ord(I=2);
  95.             If I<2 then Scrn[24-I,J]:=$08DB+$0700*Ord(I=1);
  96.             end;
  97.     For I:=0 to 10 do
  98.         For J:=3 to 23 do begin
  99.             Scrn[J,1+I]:=$08DB+$0700*Ord(I>8);
  100.             Scrn[J,80-I]:=$08DB+$0700*Ord(I>8);
  101.             end;
  102.     Closed:=Scrn;
  103.     Delay(2000);
  104.  
  105. { Open box }
  106.     For I:=24 downto 1 do begin
  107.         Scrn[I]:=Scrns[1,I];
  108.         Sound(500-((I+5) mod 6)*10-I*10);
  109.         Delay(I*2+20); end;
  110.     NoSound;
  111. { Make Max talk }
  112.     GotoXY(12,25);
  113.     Write('Greetings! ');
  114.     Scrn1; Say('G');
  115.     Scrn0; Say(' ');
  116.     Scrn1; Say('G-uh-r');
  117.     Scrn0; Say('ee');
  118.     Scrn1; Say('t-ih-n-g-z');
  119.     Scrn0; Say('  ');
  120.     Write('This ');
  121.     Scrn1; Say('Tz-ih-s');
  122.     Scrn0; Say('s ');
  123.     Write('is ');
  124.     Scrn1; Say('ih-z');
  125.     Scrn0; Say(' ');
  126.     Write('Max Headroom. ');
  127.     For I:=1 to 3 do begin
  128.         Scrn1; Say('M');
  129.         Scrn0; Delay(10); end;
  130.     Scrn1; Say('ae-k-s');
  131.     Scrn0; Say(' ');
  132.     Scrn1; Say('H-eh-d');
  133.     Scrn0; Say('r');
  134.     Scrn1; Say('oo-m');
  135.     Scrn0; Say('    ');
  136.     Write('Pepsi ');
  137.     Scrn1; Say('P-eh');
  138.     Scrn0; Say('p');
  139.     Scrn1; Say('s-ee');
  140.     Scrn0; Say(' ');
  141.     Write('drinkers ');
  142.     Scrn1; Say('D-r-ih-n');
  143.     Scrn0; Say('k');
  144.     Scrn1; Say('u-r-z');
  145.     Scrn0; Say(' ');
  146.     Write('are ');
  147.     Scrn1; Say('Ah-r');
  148.     Scrn0; Say(' ');
  149.     Write('DWEEBS! ');
  150.     For I:=1 to 3 do begin
  151.         Scrn1; Say('D');
  152.         Scrn0; Delay(10); end;
  153.     Scrn1; Say(' D-w-w-ee-b-z');
  154.     Scrn0; Say('     ');
  155.  
  156.     GotoXY(1,25); Write('':79); GotoXY(25,25);
  157.     Write('Give ');
  158.     Scrn1; Say('G-ih-v');
  159.     Scrn0; Say(' ');
  160.     Write('me ');
  161.     Scrn1; Say('m-ee');
  162.     Scrn0; Say(' ');
  163.     Write('a ');
  164.     Scrn1; Say('uh');
  165.     Scrn0; Say(' ');
  166.     Write('Coke, ');
  167.     For I:=1 to 3 do begin
  168.         Scrn1; Say('K');
  169.         Scrn0; Delay(10); end;
  170.     Scrn1; Say('oh-k');
  171.     Scrn0; Say('  ');
  172.     Write(#39'cuz ');
  173.     Scrn1; Say('k-uh-z');
  174.     Scrn0; Say(' ');
  175.     Write('it'#39's ');
  176.     Scrn1; Say('ih-t-s');
  177.     Scrn0; Say(' ');
  178.     Write('K-K00L! ');
  179.     For I:=1 to 5 do begin
  180.         Scrn1; Say('K');
  181.         Scrn0; Delay(5); end;
  182.     Say(' ');
  183.     Scrn1; Say('K-oo-l');
  184.     Scrn0; Say('     ');
  185.     GotoXY(1,25); Write('':79); GotoXY(30,25);
  186.     TextColor(7); Write('Catch the Wave     ');
  187.     TextColor(12); Write('Coke'); TextColor(7);
  188.     GotoXY(80,24);
  189.     Scrn1; Say('K'); Scrn0; Delay(10);
  190.     Scrn1; Say('K-eh-t-ch');
  191.     Scrn0; Say(' ');
  192.     Scrn1; Say('th-uh');
  193.     Scrn0; Say(' ');
  194.     Scrn1; Say('W-a-v');
  195.     Scrn0; Say('    ');
  196.     Scrn1; Say('K-K-oh-k');
  197.     Scrn0; Say('      ');
  198. { Make Max laugh }
  199.     For I:=1 to 3 do begin
  200.         Scrn1; Say('H-ah');
  201.         Scrn0; Delay(10); end;
  202. { Shut the door }
  203.     For I:=1 to 24 do begin
  204.         Scrn[I]:=Closed[I];
  205.         Sound(500-((I+5) mod 6)*10-I*10);
  206.         Delay(I*2+20); end;
  207.     NoSound;
  208.     Delay(2000);
  209.     ClrScr;
  210.     END.
  211.